home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
C and C++
/
Compilers⁄Interps
/
kevoSource
/
portGlobal.h
< prev
next >
Wrap
Text File
|
1993-05-16
|
6KB
|
259 lines
/* Kevo -- a prototype-based object-oriented language */
/* (c) Antero Taivalsaari 1991-1993 */
/* Some parts (c) Antero Taivalsaari 1986-1988 */
/* portGlobal.h: Non-portable global definitions and data areas */
/* Select the correct machine platform here */
#define MAC
/* #define UNIX */
/* Include non-portable header files */
#include "portWindows.h"
#include "portBrowser.h"
#include "portEdit.h"
#include "portEvents.h"
#include "portPrim.h"
#ifdef UNIX
/* System-dependent lowest user-readable memory location (SPARC=8192) */
/* Needed only for '.rs' */
/* Not needed in Mac */
#define LOWMEMLIMIT 8192 */
#endif
/* These macros returns the lowest and highest memory addresses of the */
/* application heap. The Kevo system should not normally access memory */
/* addresses beyond these limits. */
/* This is the same as Mac Toolbox macro ApplicationZone() */
#define lowMemLimit (*(int*)0x02AA)
/* This is the same as Mac Toolbox macro GetApplLimit() */
#define highMemLimit (*(int*)0x0130)
/* This address contains the highest addressable memory location in the Mac */
/* References above this location may cause a bus error */
/* The same as Mac Toolbox routine TopMem() */
#define HIGHMEMLIMIT (*(int**)0x0108)
/* Safe memory fetch operation. Masks out bus error arising from */
/* references to illegal memory locations */
int maskedFetch();
/* Dialogs */
#define ABOUT_DIALOG 1
/* Standard window size */
#define STANDARDWINDOWWIDTH 500
#define STANDARDWINDOWHEIGHT 300
/* The scroll bar width is always 16 in the Mac */
#define SCROLLBARWIDTH 16
/* Window kinds */
/* PlainWKind: no TE facilities; can be used for graphics */
/* TEWKind: Mac TextEdit facilities; supports both text and graphics (text better) */
/* BrowserWKind: Normal browser window */
/* CloneBrWKind: Browser window for displaying clone families */
#define UnknownWKind 0
#define PlainWKind 1
#define TEWKind 2
#define BrowserWKind 3
#define CloneBrWKind 4
/* Event loop timing variables */
extern int nextTime; /* Stores tick count upon entering 'EventLoop()' */
extern int eventDelay; /* How many ticks must go before we can invoke EventLoop again */
extern int eventSlice; /* How much time do we give to other Mac tasks */
/* Stores the last time when the event loop was invoked.
Used for avoiding the user interface from getting stuck.
*/
extern int lastEventTime;
/* These variables are used in menus to set certain modes on/off (see 'doFlags()') */
extern int cooperativeFlag;
extern int traceFlag;
/*
These variables designate the currently active task, and TE (TextEdit)
on the screen.
*/
extern TASK** theTask;
extern TEHandle theText;
/* Latest event noticed by Macintosh */
extern EventRecord theEvent;
/* Standard window size rectangle */
extern Rect standardRect;
/* Window dragging and growing limit */
extern Rect limitRect;
/* User interface modes */
extern int GUIMode;
#define GUIShell 1
#define GUIBrowser 2
/* Search modes for the browser */
#define ALL 1
#define DATA 2
#define BEHAVIOR 3
/* Browser variables */
extern TASK** browserTask; /* The browser task */
extern int browserCount; /* How many browsers open currently */
extern WindowPtr LastBrowser; /* The latest opened browser in the system */
/* Icon list management variables */
extern int MaskedPairs; /* How many pairs is there in the current object */
extern int AnonymousSlots; /* How many anonymous (array) slots - " - */
extern int CellsInTotal; /* How many cells/icons in total in current browser */
/* Icon list management constants */
#define ICONCELLHEIGHT 18
#define ICONLINELENGTH 480
/* Information for CUTting, COPYing, and PASTEin pairs from one browser to another */
extern LIST* ClipList; /* Stores the pairs */
extern OBJECT* ClipObject; /* Stores the owner of the pairs */
extern CONTEXT* ClipContext; /* Original (unmodified) context of the source object */
extern int ClipMode; /* Clipping mode (see below) */
/* Modification menu flag fields */
extern int whoToModify; /* Editing only one object or the whole clone family? */
/* Clipping modes */
#define CLIP_CUT 1
#define CLIP_COPY 2
/* The global menus */
extern MenuHandle appleMenu;
extern MenuHandle fileMenu;
extern MenuHandle windowMenu;
/* Shell-specific menus */
extern MenuHandle edit1Menu;
extern MenuHandle tasksMenu;
extern MenuHandle multitaskMenu;
extern MenuHandle debugMenu;
/* Browser-specific menus */
extern MenuHandle edit2Menu;
extern MenuHandle viewMenu;
extern MenuHandle toolsMenu;
/* Menu definitions (see the resource file) */
#define APPLE_MENU 1
#define FILE_MENU 2
#define EDIT1_MENU 3
#define TASKS_MENU 5
#define MULTITASK_MENU 6
#define DEBUG_MENU 7
#define EDIT2_MENU 13
#define VIEW_MENU 14
#define TOOLS_MENU 15
#define WINDOW_MENU 100
/* Menuitem definitions (see the resource file) */
#define NEW_TASK_MENUITEM 1
#define NEW_SCRIPT_MENUITEM 2
#define SAVE_IMAGE_MENUITEM 4
#define QUIT_MENUITEM 6
#define BROWSE_MENUITEM 1
#define UNDO_MENUITEM 1
#define CUT_MENUITEM 3
#define COPY_MENUITEM 4
#define PASTE_MENUITEM 5
#define CLEAR_MENUITEM 6
#define SELECT_ALL_MENUITEM 8
#define MKDIR_MENUITEM 10
#define ADD_VAR_MENUITEM 11
#define ADD_SHAREDVAR_MENUITEM 12
#define ADD_METHOD_MENUITEM 13
#define HIDE_SHOW_MENUITEM 15
#define THIS_ONLY_MENUITEM 17
#define WHOLE_FAMILY_MENUITEM 18
#define DERIVATIVES_MENUITEM 19
#define CANCEL_MENUITEM 1
#define SUSPEND_MENUITEM 3
#define ACTIVATE_MENUITEM 4
#define LOWER_PR_MENUITEM 6
#define HIGHER_PR_MENUITEM 7
#define PREEMPTIVE_MENUITEM 1
#define COOPERATIVE_MENUITEM 2
#define MON_MOFF_MENUITEM 4
#define RESET_MENUITEM 6
#define NOTRACE_MENUITEM 1
#define TRACE_MENUITEM 2
#define FULLTRACE_MENUITEM 3
#define SET_BREAK_MENUITEM 5
#define REMOVE_BREAK_MENUITEM 6
#define RESUME_MENUITEM 7
#define VIEW_OPER_MENUITEM 1
#define VIEW_DATA_MENUITEM 2
#define VIEW_BOTH_MENUITEM 3
#define ONE_COLUMN_MENUITEM 5
#define FOUR_COLUMNS_MENUITEM 6
#define SHOW_ROOT_MENUITEM 8
#define SHOW_CLONEF_MENUITEM 9
#define SHOW_PARENTF_MENUITEM 10
#define SHOW_CHILDF_MENUITEM 11
#define UPDATE_MENUITEM 13
#define CLONE_MENUITEM 1
#define NEW_MENUITEM 2
#define SHARE_MENUITEM 3
#define ASSIGN_MENUITEM 5
#define OPEN_SHELL_MENUITEM 6
#define HIDE_WINDOW_MENUITEM 1
#define MOVE_BEHIND_MENUITEM 2
#define CLOSE_BROWSERS_MENUITEM 4